package TP2.implementation;

import TP2.NodoLista;
import TP2.TDA.ConjuntoTDA;

public class ConjuntoUnivAcotListaImpl implements ConjuntoTDA {
	final int COTA_INF = 50; // Inclusive
	final int COTA_SUP = 150; // No inclusive
	int cant;
	NodoLista lista;

	public void agregar(int x) {
		if (!pertenece(x) && x >= COTA_INF && x < COTA_SUP) {
			NodoLista nuevo = new NodoLista(x, lista);
			lista = nuevo;
			cant++;
		}
	}

	
	public void sacar(int x) {
		NodoLista aux = lista;
		NodoLista prev = null;

		while (aux != null && aux.getContenido() != x) {
			prev = aux;
			aux = aux.getSgte();
		}
		if (aux != null) { // El elemento petenece
			if (prev != null) {
				prev.setSgte(aux.getSgte());
			} else {
				lista = lista.getSgte();
			}
			cant--;
		}
	}

	
	public int elegir() {
		return lista.getContenido();
	}

	
	public boolean pertenece(int x) {
		NodoLista aux = lista;
		while (aux != null && aux.getContenido() != x) {
			aux = aux.getSgte();
		}
		return (aux != null);
	}

	
	public boolean vacio() {
		return (cant == 0);
	}

	
	public void inicializar() {
		lista = null;
		cant = 0;
	}

}
